package com.chaodev.base.service;

import com.github.pagehelper.PageInfo;
import com.chaodev.base.dto.ButtonDTO;
import com.chaodev.base.dto.MenuDTO;
import com.chaodev.base.model.Menu;

import java.util.List;
import java.util.Map;

public interface IMenuService {

    /**
     * 获取左侧菜单树
     * @param map
     * @return
     */
    List<Map<String, Object>> getMenuTitle(Map<String, Object> map);

    /**
     * 获取菜单按钮列表
     *
     * @param map
     * @return
     */
    List<ButtonDTO> getMenuButton(Map<String, Object> map);

    /**
     * 获取菜单分页列表
     *
     * @param map
     * @return
     */
    PageInfo<MenuDTO> menuQuery(Map<String, Object> map);

    /**
     * 新增或修改菜单
     *
     * @param menu
     * @return
     */
    boolean menuAdd(Menu menu);

    /**
     * 获取菜单上级树
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> getMenuParentTree(Map<String, Object> map);

    /**
     * 获取权限菜单树
     *
     * @param map
     * @return
     */
    List<MenuDTO> getMenuZtree(Map<String, Object> map);

    /**
     * 获取功能菜单树
     *
     * @param map
     * @return
     */
    List<MenuDTO> getMenuZtreeBtn(Map<String, Object> map);

    /**
     * 删除菜单
     *
     * @param menu
     * @return
     */
    boolean menuDelete(Menu menu);
    /**
     *  移动端获取功能权限
     *  @param roleCode 角色编码
     *  @return
     */
    List<Map<String,Object>> getAppPower(Integer roleCode);
}
